package com.sgcc.sx.pmos.e_sx_home.activity;

import android.view.View;
import android.widget.TextView;

import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;

import com.alibaba.android.arouter.facade.annotation.Route;
import com.alibaba.android.arouter.launcher.ARouter;
import com.sgcc.sx.pmos.arouter.home.HomeArouterPath;
import com.sgcc.sx.pmos.common.base.MvpBaseActivity;
import com.sgcc.ln.pmos.common.widget.TitleBar;
import com.sgcc.pmos.nativesdk.R;
import com.sgcc.sx.pmos.e_sx_home.adapter.RetailQaAdapter;
import com.sgcc.sx.pmos.e_sx_home.bean.RetailBean;
import com.sgcc.sx.pmos.e_sx_home.contract.RetailContract;
import com.sgcc.sx.pmos.e_sx_home.presenter.RetailPresenter;

import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;

/**
 * 电量变更--分时段
 */
@Route(path = HomeArouterPath.HOME_RETAILQA)
public class RetailQaActivity extends MvpBaseActivity<RetailPresenter> implements RetailContract.View {

    private static final String TAG = "RetailQa";
    RetailQaAdapter adapter;
    public boolean isrefresh = false;//是否是刷新状态
    private TitleBar mTitleBar;
    private List<RetailBean.RetailListDTO> mData=new ArrayList<>();
    private RecyclerView mRecycleview;
    private TextView this_month,next_month;
    @Override
    protected RetailPresenter createPresenter() {
        return new RetailPresenter();
    }

//    @Override
//    protected void receiveIntentExtras() {
//        super.receiveIntentExtras();
//        mRelationId = getIntent().getStringExtra(ArguConstant.RELATIONID);
//        mPackageId = getIntent().getStringExtra(ArguConstant.PACKAGEID);
//    }


    @Override
    protected int getContentViewLayoutID() {
        return R.layout.activity_retail;
    }

    @Override
    protected void initViews() {
        super.initViews();
        mTitleBar = (TitleBar) findViewById(R.id.title_bar);
        mTitleBar.setTitle("零售百科");
        mTitleBar.setRightIcon(R.mipmap.go_main, new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                goMainActivity();
            }
        });
        this_month=findViewById(R.id.this_month);
        next_month=findViewById(R.id.next_month);
        this_month.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                this_month.setTextColor(0xff0092FF);
                next_month.setTextColor(0xff999999);
            }
        });
        next_month.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                this_month.setTextColor(0xff999999);
                next_month.setTextColor(0xff0092FF);
            }
        });
        mRecycleview=findViewById(R.id.recycleview);
        GridLayoutManager layoutManager = new GridLayoutManager(this, 2);
        mRecycleview.setLayoutManager(layoutManager);
        layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
            @Override
            public int getSpanSize(int position) {
                if (position == 0||position == 1){
                    return 2;
                }
                return 1;
            }
        });
        adapter=new RetailQaAdapter(this);
        mRecycleview.setAdapter(adapter);
        adapter.setOnItemClickListener(new RetailQaAdapter.OnItemClickListener() {
            @Override
            public void itemClickListener(int position, RetailBean.RetailListDTO bean) {
                ARouter.getInstance()
                        .build(HomeArouterPath.HOME_RETAILQA_DETAIL)
                        .withSerializable("bean",bean)
                        .navigation();
            }
        });
        getDataRequest(10,true);


    }

    private List<String> getFieldValue(Object o) {
        try {
            List<String> list = new ArrayList<>();
            String getter = "get" + "Energy";
            for (int i = 1; i < 25; i++) {
                String s1 = getter + String.valueOf(i);
                Method method = o.getClass().getMethod(s1, new Class[]{});
                Object value = method.invoke(o, new Object[]{});
                list.add((String) value);
            }
            return list;
        } catch (Exception e) {

        }
        return null;
    }

    public void getDataRequest(int listSize, boolean isloading) {
        mPresenter.getRetailList( listSize,  isloading, json );
    }

    @Override
    public void queryRetailSuccess(RetailBean bean) {
        if (isrefresh) {
            mData.clear();
        }
        if (bean != null) {
            mData.addAll(bean.getRetailList());
        }
        adapter.setNewData(mData);
        adapter.notifyDataSetChanged();

    }

    @Override
    public void queryRetailFailed() {

    }

    String json="{\"retailList\":\n" +
            "\n" +
            "\n" +
            "[\n" +
            "{\"sortNum\":1,\"questions\":\"电力批发市场\",\"answer\":\"电力批发市场包括电能量市场与辅助服务市场，电能量市场包含中长期电能量市场与现货电能量市场。\"}\n" +
            "\n" +
            "\n" +
            ",{\"sortNum\":2,\"questions\":\"电力批发市场交易\",\"answer\":\"指发电企业、电力批发用户、售电公司之间进行电力交易活动的总称。现阶段，是指发电企业、电力批发用户、售电公司等市场主体通过市场化方式开展的中长期电能量市场交易和现货（日前、实时）电能量市场交易以及辅助服务交易等。\"}\n" +
            "\n" +
            ",{\"sortNum\":3,\"questions\":\"电力零售市场\",\"answer\":\"指零售用户自主选择售电公司进行购电的电力市场。\"}\n" +
            "\n" +
            ",{\"sortNum\":4,\"questions\":\"电力零售市场交易\",\"answer\":\"指售电公司与零售用户之间开展的电力交易活动\"}\n" +
            "\n" +
            ",{\"sortNum\":5,\"questions\":\"售电公司\",\"answer\":\"指提供售电服务或配售电服务的市场主体。售电公司在零售市场与电力用户确立售电服务关系，在批发市场开展购售电业务。\"}\n" +
            "\n" +
            ",{\"sortNum\":6,\"questions\":\"电力批发用户\",\"answer\":\"指通过批发市场直接参与中长期及现货市场交易的用电企业。\"}\n" +
            "\n" +
            "\n" +
            ",{\"sortNum\":7,\"questions\":\"电力零售用户\",\"answer\":\"指通过零售市场向售电公司购电的用电企业。\"}\n" +
            "\n" +
            ",{\"sortNum\":8,\"questions\":\"电网企业代理购电用户\",\"answer\":\"暂未直接从电力市场购电，由电网企业代理购电的工商业用户。\"}\n" +
            "\n" +
            ",{\"sortNum\":9,\"questions\":\"履约保障凭证\",\"answer\":\"包括履约保函、履约保险及风险保证金等。\"}\n" +
            "\n" +
            ",{\"sortNum\":10,\"questions\":\"电力零售平台\",\"answer\":\"指满足零售市场建设需要，售电公司与零售用户开展零售交易、签订零售合约、获取结算信息的技术支持系统。\"}\n" +
            ",{\"sortNum\":11,\"questions\":\"零售商城\",\"answer\":\"指基于电力零售平台，售电公司和零售用户以电商形式进行零售套餐买卖的场所。\"}\n" +
            "\n" +
            ",{\"sortNum\":12,\"questions\":\"零售套餐\",\"answer\":\"是指在零售商城内售电公司与零售用户确定购售电结算价格的标准化商品，售电公司可根据自身经营特性制定相应的零售套餐，零售用户可自由选择购买。\"}\n" +
            "\n" +
            ",{\"sortNum\":13,\"questions\":\"零售套餐价格\",\"answer\":\"由售电公司上架各标的月的月度价格套餐组合形成，作为明确零售用户电价（电费）及售电公司售电收入的计算依据。\"}\n" +
            "\n" +
            ",{\"sortNum\":14,\"questions\":\"月度价格套餐\",\"answer\":\"作为月度零售用户电价（电费）及售电公司售电收入的计算依据。月度价格套餐由组合价格套餐或基础价格套餐构成。\"}\n" +
            ",{\"sortNum\":15,\"questions\":\"基础价格模式（模板）\",\"answer\":\"指某月不同时段、不同电量的零售用户电价。\"}\n" +
            ",{\"sortNum\":16,\"questions\":\"组合价格模式（模板）\",\"answer\":\"由两个基础价格套餐组合形成的套餐，分为基准套餐与浮动套餐，通过浮动套餐与基准套餐零售电价高低判定及浮动系数，得到最终生效的零售电价。同一个组合价格套餐模板可用于多个月度价格套餐。\"}\n" +
            ",{\"sortNum\":17,\"questions\":\"统一结算点电价\",\"answer\":\"发电侧所有节点电价与时点电量加权平均值。\"}\n" +
            ",{\"sortNum\":18,\"questions\":\"月度实时市场加权平均价\",\"answer\":\"省内现货实时市场的月度所有时点的节点电价加权均价。\"}\n" +
            ",{\"sortNum\":19,\"questions\":\"电力零售合同（协议）\",\"answer\":\"零售双方达成电力零售交易后签署的合同（协议），具备法律约束力，应按照条款履行。电力零售合同（协议）均为电子化形式，内置于电力零售平台。\"}\n" +
            ",{\"sortNum\":21,\"questions\":\"用户身份转换缺省处理机制\",\"answer\":\"1）通过电网企业代理购电的用户选择标的月转换为零售用户，至该月零售交易截至时间仍未达成零售交易时，该次身份转换不生效，相应用户身份仍为通过电网企业代理购电的用户。2）批发用户、执行电网企业代理购电价格1.5倍的用户选择标的月转换为零售用户，至该月零售交易截至时间仍未达成零售交易时，该次身份转换不生效，相应用户身份仍保持不变。3）标的月零售交易截至时间零售用户未选择售电公司签约时，该月用户身份缺省转为批发用户，按照批发用户相关交易规则购电。该月批发交易结束后，用户在该月既未参与批发交易，也未自主将次月身份转为零售用户并进行零售签约时，次月起该用户缺省转换为执行电网企业代理购电价格1.5倍的用户。\"}\n" +
            ",{\"sortNum\":23,\"questions\":\"标准化零售套餐交易方式\",\"answer\":\"电力零售交易主要通过电力零售交易平台组织开展，由售电公司通过挂牌方式发布零售套餐，零售用户下单购买。\"}\n" +
            ",{\"sortNum\":24,\"questions\":\"双边协商零售套餐交易方式\",\"answer\":\"在标准零售套餐基础上可通过双边协商方式修改零售套餐内容，经双方确认后生效，通过双边议价协商形成零售套餐仅协商双方可见。\"}\n" +
            ",{\"sortNum\":25,\"questions\":\"零售套餐标的周期\",\"answer\":\"是零售套餐可向零售用户售电的期限的范围，包括交割起始月和交割终止月。\"}\n" +
            ",{\"sortNum\":26,\"questions\":\"零售套餐最大/小购买月份数\",\"answer\":\"指零售套餐中，售电公司针对零售用户可购买周期做的最大/小限制。零售用户购买套餐时，交易标的时间应大于等于该最小可购买月份，小于等于最大购买月份。\"}\n" +
            ",{\"sortNum\":27,\"questions\":\"零售套餐用户月均电量最大/小约束\",\"answer\":\"指零售套餐中，针对购买该套餐的零售用户上一年度月均电量进行限制的约束。即要求用户上一年度月均电量（无该数据时，采用上月结算电量，下同）应介于月均电量最大/小约束之间。\"}\n" +
            ",{\"sortNum\":28,\"questions\":\"零售套餐用户电压等级范围\",\"answer\":\"是指零售套餐中，针对购买该套餐的零售用户的电压等级进行限制。多个电压等级的用户的电压等级按最高电压等级计算。\"}\n" +
            ",{\"sortNum\":29,\"questions\":\"零售套餐是否允许执行中变更\",\"answer\":\"指零售套餐中，针对零售套餐价格（含量、价、费参数）是否可变更的约定。零售用户可在各月交割开始前，发起零售套餐价格参数变更申请，售电公司确认后生效。\"}\n" +
            ",{\"sortNum\":30,\"questions\":\"零售套餐解约方式及用户解约金\",\"answer\":\"指零售套餐中，针对解约方式的约定。售电公司可在零售套餐中提供单方解约、双方协商解约等2种模式。1）单方解约，售电公司在零售套餐中配置无条件解约、有条件解约等条款。零售用户已购买套餐（签订零售协议）的情况下，每月零售交易截止时间点前，可依据该条款单方解除协议。对套餐约定无条件解约的，零售用户可直接解约。对于约定有条件解约的零售套餐，零售用户确认单方解约时，要支付违约责任费用给售电公司以终止零售关系；售电公司不得单方解约。违约责任费的计算价格按照约定度电价格，电量按照约定电量、去年月均电量、上月结算电量、零电量的优先级的优先级顺序取用。违约责任费用于当月与电费一并收取后，次月返还给对应售电公司。2）双方协商解约。需由零售用户与售电公司双边协商后，一方发起，另一方确认的方式终止零售关系。\"}\n" +
            ",{\"sortNum\":31,\"questions\":\"零售套餐是否允许发起双边协商\",\"answer\":\"指零售套餐中，售电公司针对零售用户是否可发起议价下单的行为进行标识。允许发起双边议价的零售套餐，表示售电公司允许零售用户发起议价邀约，零售双方可通过双边协商方式确定零售套餐内容。不允许发起双边议价的零售套餐，表示售电公司拒绝就该零售套餐与零售用户协商，零售用户只可直接下单购买。\"}\n" +
            ",{\"sortNum\":32,\"questions\":\"零售套餐最大销量\",\"answer\":\"售电公司针对该套餐最大总计可售电量的限制。按照已购买该零售套餐的全部用户全部月份电量（各用户月度电量标准按照上一年度月均电量计算）不高于零售套餐最大销量约束。\"}\n" +
            ",{\"sortNum\":33,\"questions\":\"零售套餐编制\",\"answer\":\"零售套餐编制是指售电公司在满足零售交易系统参数配置约束的前提下，进行零售套餐各项参数设置的行为。零售套餐由各售电公司自主制定。其中，零售套餐价格、零售套餐其他参数为必填项，其他条款为选填项。零售套餐内全部参数内容由编制其的售电公司负责，相关参数一经确定并上架后，即视为该售电公司认可零售套餐全部条款内容，零售用户下单无需售电公司二次确认。零售套餐的有效期限以自然月为单位，期限最短为1个月，超过1个月应为其整数倍。\"}\n" +
            ",{\"sortNum\":34,\"questions\":\"零售套餐上下架\",\"answer\":\"零售套餐上架是指售电公司将其编制完成的零售套餐在零售交易平台挂牌的行为。零售套餐下架是指售电公司将其已挂牌的零售套餐撤牌的行为。零售用户已完成下单确认及已发起下单流程的零售套餐，不受零售套餐下架的影响。零售交易平台建设初期，零售套餐上架前需完成预审核，预审核通过的零售套餐可由售电公司自主进行上架操作。随着市场发展与系统成熟度提升，将视情况取消零售套餐上架前的预审核环节。零售套餐下架操作无需审核。\"}\n" +
            ",{\"sortNum\":35,\"questions\":\"直接下单购买\",\"answer\":\"零售用户通过零售交易平台浏览售电公司已上架的零售套餐，在零售交易允许时间范围内进行下单确认操作。零售用户下单时需选择零售套餐及购买标的月，下单购买约定零售电量的零售套餐还需填写分月/分时零售电量值。\"}\n" +
            ",{\"sortNum\":36,\"questions\":\"议价下单购买\",\"answer\":\"零售用户对于带有可议价下单标识的零售套餐，零售用户可在满足与直接下单购买一致的约束校验的基础上发起议价邀约，售电公司根据双边协商的议价结果将该零售套餐各项参数及其他条款修改为双方协商一致的结果，由零售用户填写零售电量等参数并确认后即视为下单购买生效。\"}\n" +
//            ",{\"sortNum\":37,\"questions\":\"售电公司信用评价\",\"answer\":\"\"}\n" +
            ",{\"sortNum\":38,\"questions\":\"零售套餐辅助计算\",\"answer\":\"辅助计算服务包括零售用户典型用电曲线计算、零售套餐预估电价计算等内容。山西电力零售交易平台综合运用大数据计算技术，按照一定周期统一计算零售用户典型用电曲线与零售套餐预估电价，各零售查看的大数据结果计算信息仅作为参考，不作为实际执行的依据。零售套餐售电公司上架前或零售用户下单购买前，可自主定义相关参数后，由平台提供辅助计算服务，便于市场主体进行判断。\"}\n" +
//            ",{\"sortNum\":39,\"questions\":\"零售套餐预估电价\",\"answer\":\"\"}\n" +
            "]}";
}
